﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ecommerce.Model;

namespace Ecommerce.Web.UserControl
{
    public partial class ProdutosRelacionados : System.Web.UI.UserControl
    {
        private ProdutoModel _produtoModel = new ProdutoModel();

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        public void CarregarProdutosRelacionados(int identificadorProduto)
        {
            List<tb_pro_produto> lista = _produtoModel.ListarProdutosRelacionados(identificadorProduto);
            this.Carregar(lista);
        }

        public void CarregarProdutosRelacionados(string codigoProduto)
        {
            var produto = _produtoModel.ObterPorCodigo(codigoProduto);
            List<tb_pro_produto> lista = _produtoModel.ListarProdutosRelacionados(produto.pro_idt_produto);
            this.Carregar(lista);
        }

        private void Carregar(List<tb_pro_produto> lista)
        {
            if (lista.Count > 0)
            {
                if (lista.Count > 4)
                    lista = lista.Take(4).ToList();

                rptProdutosRelacionados.DataSource = lista;
                rptProdutosRelacionados.DataBind();
            }        
        }

        protected void rptProdutosRelacionados_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                tb_pro_produto produto = (tb_pro_produto)e.Item.DataItem;

                Image imgProduto = (Image)e.Item.FindControl("imgProduto");
                Label lblNome = (Label)e.Item.FindControl("lblNome");
                Label lblPreco = (Label)e.Item.FindControl("lblPreco");
                HyperLink hlDetalhes = (HyperLink)e.Item.FindControl("hlDetalhes");

                hlDetalhes.NavigateUrl = "~/Produtos/Detalhes.aspx?codigo=" + Server.UrlEncode(produto.pro_cod_produto);
                lblNome.Text = produto.pro_nom_produto;
                lblPreco.Text = ProdutoModel.CalcularDesconto(produto, false, 2, produto.pro_vlr_preco_consumidor).ToString("c");

                //if (this.TipoUsuarioLogado == TipoPessoa.PFI || this.TipoUsuarioLogado == TipoPessoa.PJU)
                //    liPreco.Text = ProdutoModel.CalcularDesconto(produto, false, 2, produto.pro_vlr_preco_consumidor).ToString("c");
                //else
                //    liPreco.Text = ProdutoModel.CalcularDesconto(produto, false, 2, produto.pro_vlr_preco_revenda).ToString("c");

                //liProduto.Text = produto.pro_nom_produto;

                tb_ipr_imagem_produto imagemProduto = produto.tb_ipr_imagem_produto.Where(x => x.ipr_num_ordem_imagem.Equals(1)).FirstOrDefault();

                if (imagemProduto != null)
                    imgProduto.ImageUrl = imagemProduto.ipr_des_caminho_virtual;
                else
                    imgProduto.ImageUrl = "~/images/imagem_nao_disp_home.jpg";
            }
        }
    }
}